home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI MIPSpro Fortran-77 7.2
/
SGI MIPSpro Fortran-77 7.2.iso
/
docs6.4
/
relnotes
/
ftn77_fe
/
ch4.z
/
ch4
Wrap
Text File
|
1997-09-04
|
10KB
|
330 lines
- 1 -
7.2 Fortran 77 Front-End Release Notes
- 2 -
DDDDooooccccuuuummmmeeeennnntttt NNNNuuuummmmbbbbeeeerrrr 000000007777----1111666655559999----000011110000
4. _N_e_w__F_e_a_t_u_r_e_s__o_f__T_h_i_s__R_e_l_e_a_s_e
This chapter contains the differences between
this release and the 7.1 release of MIPSpro
Fortran 77 compiler.
4.1 _R_e_p_a_c_k_a_g_i_n_g__o_f__F_r_o_n_t_-_E_n_d__S_u_b_s_y_s_t_e_m_s
The MIPSpro Fortran 77 front-end subsystems are
now packaged on their own separate CD. Before
installing the MIPSpro Fortran 77 Front-end
subsystems you must first install compiler_dev,
compiler_eoe, ftn_dev, and ftn_eoe from the IRIX
Development Foundation CD. Should you desire to
use the new 7.2 Fortran 77 runtime libraries,
you must install patchSG0002016.ftn_dev_sw
patchSG0002016.ftn_eoe_sw (*.sw64 subsystems are
required only for 64-bit operation).
4.2 _O_p_t_i_o_n__t_o__u_s_e__F_o_r_t_r_a_n__9_0__l_i_b_r_a_r_y
The -_c_r_a_y_l_i_b_s option allows you to use the
Fortran 90 library, libfortran.so, (based on the
Cray FFIO library) to link your program. Using
this option requires installation of Patch 2016
(available on the IRIX Development Foundation
CD's). Note that only standard Fortran 77 I/O
operations are supported in this release. If
you use any SGI Fortran 77 extensions
(particularly ISAM and variable formats) you
cannot use the -_c_r_a_y_l_i_b_s option.
4.3 _N_e_w__O_p_t_i_o_n_s__a_n_d__D_e_f_a_u_l_t_s
A new -_D_E_B_U_G:_o_p_t_i_o_n control group has been
created to allow insertion of code to assist in
the debugging of programs. For example,
-_D_E_B_U_G:_d_i_v__c_h_e_c_k=_N replaces -_T_E_N_V:_c_h_e_c_k__d_i_v=_N
and the 7.2 compiler, by default, inserts code
to check for divide by zero (N=1).
- 3 -
_N_O_T_E: The default value for -_T_E_N_V:_c_h_e_c_k__d_i_v=_N
under MIPSpro 7.1 was N=0 (no checks).
For more information, please refer to the _f_7_7(1)
and _D_E_B_U_G__g_r_o_u_p(5) man pages.
The -_L_I_S_T: options control group has been
enhanced to the create a listing file (.l) that
contains the values of all flags modified,
directly in the command line, or indirectly as a
side effect of other options. For example:
% f77 -n32 -LIST:options=ON foo.f
will create foo.l which contains a listing that
contains the default values of certain options
from the -OPT, -LNO, -TARG and -TENV option
control groups.
The following command:
% f77 -n32 -LIST:all_options=ON foo.f
will create foo.l which contains a listing that
contains the default values of all options from
all of the option control groups.
For more information, please refer to the _f_7_7(1)
man page.
4.4 _O_b_s_o_l_e_t_e__O_p_t_i_o_n_s
Several compile-time flags have been obsoleted.
These include: -_T_E_N_V:_m_i_s_a_l_i_g_n_e_m_n_t=_N,
-_T_E_N_V:_a_l_i_g_n__e_x_t_e_r_n=_N and -_T_E_N_V:_a_l_i_g_n_e_d=_T_R_U_E.
Their use will generate a warning message in
both the compiler front-end and backend. For
example:
% f77 -n32 -TENV:misalignment=3 reshape.f
Warning: Obsolete option "-TENV:misalignment=3" -- ignored
Warning: Obsolete option "-TENV:misalignment=3" -- ignored
The -_T_E_N_V:_v_a_r_a_r_g_s__p_r_o_t_o_t_y_p_e_s=_T_R_U_E flag has been
replaced by -_D_E_B_U_G:_v_a_r_a_r_g_s__p_r_o_t_o_t_y_p_e_s=_T_R_U_E.
For more information, please refer to the _f_7_7(1)
and _D_E_B_U_G__g_r_o_u_p(5) man pages.
- 4 -
4.5 _F_i_l_l__a_n_d__A_l_i_g_n__D_i_r_e_c_t_i_v_e__S_u_p_p_o_r_t
MIPSpro 7.2 Fortran 77 supports new types of
directives to facilitate padding and alignment
of variables within cachelines and pages of
memory. They are outlined below.
c*$* fill_symbol (s, L1cacheline)
c*$* fill_symbol (s, L2cacheline)
c*$* fill_symbol (s, page)
c*$* fill_symbol (s, <user-specified-power-of-two>)
c*$* align_symbol (s, L1cacheline)
c*$* align_symbol (s, L2cacheline)
c*$* align_symbol (s, page)
c*$* align_symbol (s, <user-specified-power-of-two>)
The fill_symbol and align_symbol directives take
a symbol (i.e. a variable that may be a Fortran
COMMON, or an automatic variable, but not a
formal and not an element of a structured type
like a struct or an array). The second argument
in the directive may be one of the keywords
L1cacheline (machine specific first-level cache
line size, typically 32 bytes), L2cacheline
(machine specific second-level cache line size,
typically 128 bytes), page (machine specific
page size, typically 16 Kbytes), or a user-
specified power-of-two value.
The align_symbol directive aligns the start of
the named symbol at the specified alignment,
i.e. the symbol "s" will start at the specified
alignment boundary.
The fill_symbol directive pads the named symbol
with additional storage so that the symbol is
assured not to overlap with any other data item
within the storage of the specified size. The
additional padding required is heuristically
divided between each end of the specified
variable. For instance, a fill_symbol directive
for the L1cacheline will guarantee that the
specified symbol will not suffer from false-
sharing for the L1 cache line.
For global variables these directive must be
specified at the variable definition, and are
optional at the declarations of the variable.
- 5 -
For COMMON block variables these directive are
required at each declaration of the COMMON
block. Since the directive modify the allocated
storage and its alignment for the named symbol,
inconsistent directive can lead to undefined
results.
The align_symbol directive is ineffective for
local variables of fixed-size symbols, such as
simple scalars or arrays of known size. The
directive continues to be effective for stack-
allocated arrays of dynamically-determined size.
A variable cannot have both fill_symbol and
align_symbol directives applied to it.
4.6 _N_e_w _A_u_t_o_m_a_t_i_c _P_a_r_a_l_l_e_l_i_z_a_t_i_o_n _O_p_t_i_o_n
_P_r_o_d_u_c_t
The 7.2 release of the MIPSpro compilers marks a
major revision of the auto-parallelizer. The new
product incorporates automatic parallelization
into the other optimizations performed by the
MIPSpro compilers. Previous versions relied on
preprocessors to provide source-to-source
conversions prior to compilation. This change
provides several benefits to developers:
Automatic parallelization is integrated with
optimizations for single processors.
A set of options and pragmas consistent with the
rest of the MIPSpro compilers.
Better run-time and compile-time performance.
For more information, please refer to the
auto_p(5) man pages.
NOTE: In order to run the new automatic
parallelization, you must purchase the MIPSpro
Auto Parallelization Option (SC4-APO-7.2) and
install the license for it (FEATURE name string
= auto_pp).